Within the art of video coding, a non-linear transfer function converts linear samples to non-linear samples with the purpose to mimic human vision. In coding of HDR (High Dynamic Range) video, it can be advantageous to use a highly non-linear transfer function, since this makes it possible to distribute many codewords to dark regions, and fewer codewords to bright regions, where the relative difference in brightness is anyway small.
Unfortunately, a combination of a highly non-linear transfer function, 4:2:0 subsampling and non-constant luminance ordering gives rise to severe artifacts in saturated colors, if traditional processing is used.
A simple example of a non-linear transfer function is x(1/gamma), wherein gamma is 2.2. One example of another transfer function is the one used in SMPTE specification ST 2084 [1]. Before display the inverse of the non-linear transfer function is used. In the gamma example, x(gamma) is used to go back to linear samples.
One example of traditional processing is the way to carry out conversion from RGB 4:4:4 to Y′CbCr 4:2:0 that is described in [2], which we will refer to as the “anchor” way of processing in this document. In this case RGB 4:4:4 is transferred by a non-linear transfer function to R′G′B′ 4:4:4, which then is converted to Y′CbCr 4:4:4 by a linear color transform. Finally, the chroma samples Cb and Cr are subsampled to quarter resolution resulting in Y′CbCr 4:2:0. As described in the input contribution M35841 [3] to MPEG, the anchor way of processing gives rise to situations where changes between two colors of similar luminance can result in a reconstructed image with very different luminances.